This class constructs the Comb potential for silicon and silica [1] as a subclass of CompoundPotential.
Load the potential with:
>>> from pysic.interactions.comb import CombPotential
>>> import pysic
>>> calc = pysic.Pysic()
>>> pot = CombPotential()
>>> pot.set_calculator(calc, True)
The potential is only defined for Si and SiO and parameters have been hard coded, so symbols need not be set. The potential also automatically includes screened CoulombSummation, which is why the calculator should be given to it explicitly with set_calculator().
Comb is a fairly complicated potential with many components such as local attractive and repulsive terms, bond angle terms and electrostatics. The class allows the user to switch terms on and off in order to analyze their contribution.
[1] | T.-R. Shan, D. Bryce, J. Hawkins, A. Asthagiri, S. Phillpot, and S. Sinnott, Phys Rev B 82, 235302 (2010). |
Class representing a COMB potential.
Use:
import pysic
import pysic.interactions.comb as comb_sio
calc = pysic.Pysic()
pot = comb_sio.CombPotential()
pot.set_calculator(calc, True)
Since the potential may also define CoulombSummation (which it by default does), you should always pass the calculator to the potential in addition to passing the potential to the calculator.
The potential can be modified through the exclusion list. This defines which chuncks of the potential are incorporated at any time. For instance:
pot.exclude('si_self')
calc.set_potentials(pot)
will remove the self energy contribution from Si atoms. If you modify the potential, you need to confirm the changes by passing the potential to the calculator. This is because the potential is built in the calculator as it is passed. Therefore any changes made after that to the potential will not propagate to the calculator.
Returns True, if ex is a valid keyword of the list of components for this potential.
Includes all components in the potential, except long range Coulomb interaction.
Attaches the calculator to the potential. This is needed so that a CoulombSummation can be set. If the argument reciprocal=True is given, also the command calc.set_potentials(self) is run.
Switches on Ewald summation in calc. If cheat == True, a short ranged screened interaction is used. For internal use.